set(XF_PRJ_NAME {{project_name}})
set(XF_PRJ_PATH {{user_main.path}}/..)
set(XF_PRJ_BUILD_PATH {{user_main.path}}/../build)

set(XF_INCS_STR
    {{config_path -}}
    {% for inc_dir in user_main.inc_dirs -%}            {# user_main #}
    {{inc_dir}}
    {%- endfor %}
    {%- for key, cmpnt in public_components.items() %}  {# public_components #}
        {%- for inc_dir in cmpnt.inc_dirs %}
    {{inc_dir}}
        {%- endfor %}
    {%- endfor %}
    {%- for key, cmpnt in user_components.items() %}    {# user_components #}
        {%- for inc_dir in cmpnt.inc_dirs %}
    {{inc_dir}}
        {%- endfor %}
    {%- endfor %}
    {%- for key, cmpnt in user_dirs.items() %}    {# user_dirs #}
        {%- for inc_dir in cmpnt.inc_dirs %}
    {{inc_dir}}
        {%- endfor %}
    {%- endfor %}
    {%- for key, port in public_port.items() %}  {# public_port #}
        {%- for inc_dir in port.inc_dirs %}
    {{inc_dir}}
        {%- endfor %}
    {%- endfor %}
)

set(XF_SRCS_STR
    {%- for src in user_main.srcs -%}                   {# user_main #}
    {{src}}
    {%- endfor %}
    {%- for key, cmpnt in public_components.items() %}  {# public_components #}
        {%- for src in cmpnt.srcs %}
    {{src}}
        {%- endfor %}
    {%- endfor %}
    {%- for key, cmpnt in user_components.items() %}    {# user_components #}
        {%- for src in cmpnt.srcs %}
    {{src}}
        {%- endfor %}
    {%- endfor %}
    {%- for key, cmpnt in user_dirs.items() %}    {# user_dirs #}
        {%- for src in cmpnt.srcs %}
    {{src}}
        {%- endfor %}
    {%- endfor %}
    {%- for key, port in public_port.items() %}    {# public_port #}
        {%- for src in port.srcs %}
    {{src}}
        {%- endfor %}
    {%- endfor %}
)

{# TODO 目前 sdk 中的 xf_app 包含所有 xfusion 源码，共用 cflags, 暂不能每个组件单独配置 cflags #}
set(XF_CFLAGS_STR
    {%- for key, cmpnt in user_components.items() %}    {# user_components #}
        {%- for cflag in cmpnt.cflags %}
    {{cflag}}
        {%- endfor %}
    {%- endfor %}
)

list(REMOVE_DUPLICATES XF_INCS_STR)
list(REMOVE_DUPLICATES XF_SRCS_STR)
list(REMOVE_DUPLICATES XF_CFLAGS_STR)
